package Utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;

import Dominio.Medida;
import Dominio.Sensor;


public class MensajeUtils {

	/** <p>
	 * 	Separa el mensaje dos partes, separadas por un espacio en blanco (el primero del String) 
	 * 	</p>
	 * @param mensaje
	 * @return Array con el mensaje descompuesto
	 */
	public static String[] descomponer(String mensaje){
		return mensaje.split(" ", 2);
	}
	
	/** <p>
	 *  Obtiene un sensor a partir de un String con sus parametros separados por semicolons
	 *  </p>
	 * @param mensaje
	 * @return 
	 */
	public static Sensor descomponerSensor(String mensaje){
		String [] datosSensor = mensaje.split(";");
		return new Sensor(Integer.parseInt(datosSensor[0]), datosSensor[1], datosSensor[2].equals("ON")?true:false, null);
	}
	
	/** <p>
	 *  Obtiene una medida a partir de un String con sus parametros separados por semicolons
	 *  </p>
	 * @param mensaje
	 * @return 
	 */
	public static Medida descomponerMedida(String mensaje) throws NumberFormatException, ParseException{
		String [] datosMedida = mensaje.split(";");
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/YY;hh:mm:ss");
		return new Medida(sdf.parse(datosMedida[0]+";"+datosMedida[1]), datosMedida[2].split("-")[0], datosMedida[2].split("-")[1], Integer.parseInt(datosMedida[3].replace(".", "")));
	}
	
	/** <p>
	 *  Separa un mensaje que contiene unas coordenadas en su latitud y longitud
	 *  </p>
	 * @param mensaje
	 * @return 
	 */
	public static String[] descomponerLocalizacion(String mensaje){
		return mensaje.split("-");
	}
	
	
}
